import router from './router'
import store from './store'
import { getToken } from '@/utils/auth'
const whiteList = ['/login'];// no redirect whitelist
router.beforeEach(async (to, from, next) => {
    if (getToken()) { //判断
        if (to.path === '/login') {
            // 如果登录过了，直接到首页
            next({
                path: '/'
            })
        } else { //没登录走这个
            if (!store.state.user.name) {
                store.dispatch('GetUserInfo').then(() => {
                    store.dispatch('GenerateRoutes').then(accessRoutes => {
                        // saveObjArr('router', accessRoutes) //存储路由到localStorage
                        // routerGo(to, next) //执行路由跳转方法
                        router.addRoutes(accessRoutes) // 动态新增可访问路由表
                        // next() //拿到就直接走
                        next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
                    })
                }).catch(err => {
                    console.log(err)
                    // location.reload()
                })
            } else {
                // saveObjArr('router', getRouter) //存储路由到localStorage
                next() //拿到就直接走
            }
        }
    } else {
        if (whiteList.indexOf(to.path) !== -1) { //如果不写这个，会报什么栈溢出，反正就是死循环
            next()
        } else {
            // next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页
            next('/login')
        }
    }
})
